7 research outputs found

    A Case Study for Networks of Bidirectional Transformations

    Get PDF
    Die Entwicklung moderner Softwaresysteme basiert oft auf mehreren Artefakten. Diese Artefakte teilen sich oft redundante oder abhängige Informationen, welche während der Entwicklung des Softwaresystems konsistent gehalten werden müssen. Die manuelle Durchführung dieses Prozesses ist arbeitsaufwendig und fehleranfällig. Konsistenzerhaltungsmechanismen ermöglichen diese Artefakte automatisch konsistent zu halten. Konsistenzerhaltung basiert oftmals auf bidirektionalen Transformationen, welche ein Zielmodell aktualisieren, wenn ein Quellmodell modifiziert wird. Während das Gebiet der bidirektionale Transformationen stark erforscht ist, hat Konsistenzerhaltung von mehr als zwei Modellen bisher weniger Aufmerksamkeit erhalten. Allerdings umfasst die Entwicklung von Softwaresystemen jedoch oft mehr als zwei Modelle. Folglich benötigt man Konsistenzerhaltung zwischen mehr als zwei Modellen, welche durch Netzwerke bidirektionaler Transformationen erreicht werden kann. Solche Transformationsnetzwerke kombinieren mehrere Transformationen, wobei jede einzelne für die Konsistenzerhaltung zweier Modelle verantwortlich ist. Da die Entwicklung jeder Transformation individuelles Domänenwissen erfordert, werden sie in der Regel von mehreren Domänenexperten unabhängig voneinander entwickelt. Zusätzlich können einzelne Transformationen in anderen Netzwerken wiederverwendet werden. Dies wird jedoch in bisherigen Arbeiten nicht berücksichtigt, macht aber die Konsistenzerhaltung durch Netzwerke bidirektionaler Transformationen anfällig für Probleme. In einem Netzwerk von Transformationen kann es beispielsweise zwei oder mehr Verkettungen von Transformationen geben, die dieselben Metamodelle mit verschiedenen anderen Metamodellen in Beziehung setzen. Jedoch können sie die Elemente unterschiedlich miteinander in Beziehung setzen. Dies kann zum Beispiel zu einer doppelten Erstellung derselben Elemente über die verschiedenen Transformationsketten führen. Es gibt jedoch kein systematisches Wissen über die Problemarten, die in solchen Netzwerken auftreten können oder ob und wie derartige Probleme systematisch verhindert werden können. Diese Thesis führt eine Fallstudie durch, die ermitteln soll, welche Arten von Problemen bei der Konsistenzerhaltung durch Netzwerke bidirektionaler Transformationen auftreten können. Für diese Probleme leiten wir eine Klassifizierung hinsichtlich des erforderlichen Wissens für ihre Vermeidung ab. Für Probleme, die Transformationsentwickler verhindern können, schlagen wir Strategien zur systematischen Vermeidung während ihrer Konstruktion vor. In unserer Fallstudie sind 90\% der gefundenen Probleme verhinderbar. Die übrigen Probleme lassen sich während der Entwicklung einer einzelnen Transformation nicht ohne das Wissen über weitere Transformationen im Netzwerk vermeiden. Folglich hilft diese Thesis Transformationsentwicklern Fehler bei der Erstellung von Transformationen systematisch zu vermeiden und ermöglicht es Netzwerkentwicklern Fehler zu erkennen, die bei der Konstruktion der Transformation nicht verhindert werden können

    Towards the Co-Evolution of Models and Artefacts of Industrial Tools Through External Views

    Get PDF
    Modern software systems comprise multiple models. When these models are changed, interdependent models must be evolved accordingly. Manually managing this co-evolution of models is tedious and error-prone. Moreover, other interdependent artefacts, such as persisted states of industrial software applications, must co-evolve accordingly. Automated consistency preservation allows for efficiently managing the co-evolution of models. However, while state-of-the-art approaches operate delta-based, typical software applications persist changes state-based without conforming to explicit metamodels. Additionally, software applications may persist changes infrequently, even though interdependent models might be concurrently modified. As such, current approaches are insufficient for artefacts of industrial tools. To address these issues, we propose an approach for the co-evolution of models and artefacts of industrial tools by treating these artefacts as external views on the models

    Automatic Integration of Ecore Functionality into Java Code

    Get PDF
    Modellgetriebene Softwareentwicklung erlaubt schnelleres und vereinfachtes Entwickeln von Software durch das Bereitstellen einer höheren Abstraktionsebene als Code. Modellgetriebene Programme generieren Code oft teilweise oder vollständig mithilfe von Modellen. Aus diesem Grund benötigt man ein geeignetes Modell, um modellgetriebene Prozesse verwenden zu können. Das Eclipse Modeling Framework bietet das sogenannte Ecore Metametamodell, welches das Erstellen von Metamodellen ermöglicht, die für modellgetriebene Softwareentwicklung genutzt werden können. Mithilfe des Eclipse Modeling Frameworks ist es möglich, Java Code zu generieren. Dieser generierte Code folgt spezifischen Mustern. Zum Beispiel unterscheidet er für jede Klasse zwischen Schnittstelle und Implementierung. Viele Programme sind auf diese spezifischen Muster angewiesen und können deshalb nur mit Java Code verwendet werden, welcher diese Muster enthält. Das ist üblicherweise Code, der mithilfe eines Ecore Metamodells generiert wurde. In dieser Arbeit stellen wir einen Ansatz für die automatische Integration von Ecore Funktionalität in Java Code vor. Dieser Ansatz ermöglicht die Verwendung von Ecore-abhängigen Programmen mit existierendem Java Code. Um die Integration von Ecore Funktionalität zu ermöglichen, entwickelt diese Arbeit einen Ansatz für die Extraktion von Ecore Metamodellen aus Java Code. In ihrem Zentrum steht eine Abbildung von Elementen des impliziten Java Metamodells auf Elemente des Ecore Metametamodells. Diese Extraktion kann unabhängig von der Integration von Ecore Funktionalität als Reverse Engineering Programm verwendet werden. Wir erbringen einen Nachweis für die Korrektheit unseres Ansatzes, indem wir Ecore Funktionalität in zwei Java Projekte integrieren und auf diese dann eine Modelltransformation anwenden, was zuvor nur auf Code, der aus Ecore Metamodellen generiert wurde, möglich war

    Token-based plagiarism detection for metamodels

    Get PDF
    Plagiarism is a widespread problem in computer science education. Manual inspection is impractical for large courses, and the risk of detection is thus low. Many plagiarism detectors are available for programming assignments. However, very few approaches are available for modeling assignments. To remedy this, we introduce token-based plagiarism detection for metamodels. To this end, we extend the widely-used software plagiarism detector JPlag. We evaluate our approach with real-world modeling assignments and generated plagiarisms based on obfuscation attack classes. The results show that our approach outperforms the state-of-the-art

    Dataset for "A Systematic Literature Review on the Evaluation of Software Architecture Research"

    No full text
    Replication Package SLR Evaluations at ECSA This is the replication package of the following paper, submitted to ECSA 2021. Marco Konersmann, Angelika Kaplan, Thomas Kühn, Robert Heinrich, Anne Koziolek, Ralf Reussner, Jan Jürjens, Mahmood al-Doori, Marco Ehl, Dominik Fuchß, Katharina Großer, Sebastian Hahner, Jan Keim, Matthias Lohr, Timur Sağlam, Sophie Schulz, and Jan-Philipp Töberg: A Systematic Literature Review on the Evaluation of Software Architecture Research Please find the following content: Folders data -- CSV files with the data as input to the diagrams figs -- Diagrams created by the ruby scripts (see below) tables -- contains the overview.tex file, which is used as input to the summary.tex Documents and Tables ECSA-Proceedings.bib -- Contains the BibTeX entries of ECSA papers 2007 to 2020 Data Extraction Form.docx -- The data extraction form used for extracting data during the SLR. Normalized Data.csv -- The data collected during the data extraction, normalized. summary.(tex|pdf) -- A summarizing document with all diagrams, a table of all papers with extracted reesarch objects, evaluation methods and properties, references to all papers considered in the SLR (sources, document). Scripts *.awk -- Awk scripts are used to create the corresponding of the *.csv files in data .rb -- Ruby scripts to build the respective figures in figs as .*.tex files make.sh -- A script to call all other scripts for creating diagrams and the summary. Requirements A UNIX commandline environment (e.g., bash) with awk installed Ruby (2.5 or higher) To create the diagrams, please run the script make.sh in a UNIX commandline environmen
    corecore